package com.hxkj.service;


import com.hxkj.domain.po.AuthRole;
import com.hxkj.domain.po.AuthUser;
import com.hxkj.domain.po.FunctionMenu;
import com.hxkj.token.po.LoginToken;
import com.hxkj.token.service.TokenInformationConverter;

import java.util.List;
import java.util.Set;

/**
 * 用户服务service接口
 * Created by admin on 2017/8/21.
 */
public interface UserService extends TokenInformationConverter<AuthUser> {

    /**
     * 根据账号密码获取用户信息
     * @param authUser
     * @return
     */
    LoginToken login(AuthUser authUser,String code,String uuid) throws Exception;


    /**
     * 根据账户获取用户信息
     * @param account
     * @return
     * @throws Exception
     */
    AuthUser findByAccount(String account) throws Exception;


    /**
     * 根据账户查询角色
     * @param account
     * @return
     */
    Set<String> findRolesByAccount(String account);


    /**
     * 根据账号查询permission集合
     * @param account
     * @return
     */
    Set<String> findPermissionsByAccount(String account);


    /**
     * 根据账号和appKey查找菜单集合
     * @param siteId
     * @return
     */

    List<FunctionMenu>  findFunctionMenuByAccount(String siteId) throws Exception ;

    /**
     * 通过account和appkey获得
     * @param appKey account
     * @return
     */
    List<AuthRole>getRolesByAccount(String appKey, String account);


    /**
     * 退出
     * @param userId
     */
    void loginOut(String userId) throws Exception;


    /**
     * 获取用户信息
     * @return
     * @throws Exception
     */
    AuthUser getUserInfo() throws Exception;





}
